package com.cskaoyan._11block._04static._01introduction;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/7 10:02
 **/
/*
静态代码块的细节:
1.静态代码块在类加载过程中被当做自动执行的静态方法, 不能访问非静态的
2.当需要使用复杂的代码给静态成员变量赋值时，可以使用静态代码块。
3.可以用来测试类加载顺序
 */
public class Demo3 {
    int a =1;
    static int b = 2;
    String aa = "abc";
    static D d = new D();
    static {
        // Non-static field 'a' cannot be referenced from a static context
        //System.out.println(a);
        System.out.println(b);
    }
    public static void main(String[] args) {
        //System.out.println(a);
        B b = new B();

        C c = new C();
    }
}

class B{
    static {
        System.out.println("BBBBBB");
    }
}

class C{
    static {
        System.out.println("CCCCCC");
    }
}

class D{
    static {
        System.out.println("DDDDDDDD");
    }
}